#pragma once

class World;
class TimeManager;

class GameStateObject
{
public:
    GameStateObject();
    ~GameStateObject();

    bool Init(GameEngine& gameEngine);

    World& GetWorld()             { return *m_pWorld; }
    TimeManager& GetTimeManager() { return *m_timerManager; }

    void Update(GameEngine& gameEngine);

    void ClearEntitiesOfInterest();
    void AddEntityOfInterest(Entity* pEntity);

private:
    std::unique_ptr<World>					m_pWorld;
    std::unique_ptr<TimeManager>			m_timerManager;

    //List of objects currently the focus of the player
    std::vector<Entity*>					m_intersectingEntities;
};

